// 入口文件
console.log( '入口模块。。。' );

// 应用场景1
// 注意：import命令有提升的效果，会提升到当前模块顶部！
// import {fn1} from './module1.js';
// import {fn2} from './module2.js';
// fn1(5,3);// 8
// fn2(5,3);// 2


// 应用场景2
// import {age,name,sex,say} from './module1.js';
// console.log( name,age,sex );
// say();


// 应用场景3
// import {age,name,sex,say} from './module1.js';
// console.log( name,age,sex );
// say();


// 应用场景4
// import {fn1,fn2,fn3} from './module1.js';
// fn1(5,6);
// fn2(8,3);
// fn3(8,5);


// 应用场景5
// import {obj,Cat} from './module1.js';
// console.log( obj.__proto__ );
// console.log( Cat.prototype );


// 应用场景6
// obj 接收到的是 export default 后面的值
// import obj from './module1.js';
// console.log( obj );


// 应用场景7
// 注意：同一个模块可以加载多次，但是只执行一次！
// import say from './module1.js';
// import {name,age,sex} from './module1.js';
// console.log( name,age,sex );
// say();

// import say,{name,age,sex} from './module1.js';
// console.log( name,age,sex );
// say();


// 应用场景8
// 输入的内容可以使用 as 修改变量名称
// import say,{name as n,age as a,sex as s} from './module1.js';
// console.log( n,a,s );


// 应用场景9
// 可以使用 * 号输入所有内容
// import * as obj from './module1.js';
// console.log( obj );
// console.log( obj.name );
// console.log( obj.age );
// console.log( obj.sex );
// obj.default();


// 应用场景10
// 模块内部对外输出的内容是实时变化的
// import {num} from './module1.js';
// console.log( num );// 123
// setTimeout(()=>{
//     console.log( num );// 456
// },4000);


// 应用场景11
// 模块内部的this不能直接指向window对象
// import {show} from './module1.js';
// show();// undefined
// console.log( this );// undefined


// 应用场景12
// 输入的内容不能重新赋值！
// import say,{name,age,sex} from './module1.js';
// name = '王五';// 报错，不能修改
// console.log( name );


// 应用场景13
// 不需要输入默认的任何内容（执行某个模块）
import './module1.js';
